1
จากเรียกใช้ API โดยตรงไปยังการสร้างโครงสร้างแบบอภิปรายด้วย LangChain
AI010Lesson 5
00:00

เกินข้อความที่ส่งโดยตรง

เมื่อเริ่มต้นใช้งานโมเดลภาษาขนาดใหญ่ (LLMs) นักพัฒนาส่วนใหญ่มักใช้การเรียกใช้ API โดยตรง (เช่น ไลบรารีภาษาพีทอนของ OpenAI) เพื่อส่งคำขอและรับผลลัพธ์ แม้ว่าจะใช้งานได้ แต่วิธีนี้จะกลายเป็นเรื่องยากในการจัดการเมื่อแอปพลิเคชันมีขนาดใหญ่ขึ้น

ปัญหาความไม่มีสถานะ

โมเดลภาษาขนาดใหญ่เป็นอย่างแท้จริงไร้สถานะ. ทุกครั้งที่คุณส่งข้อความ โมเดลจะลืมว่าคุณคือใครและคุณเคยพูดอะไรไปแล้ว เมื่อแต่ละการโต้ตอบถือว่าเป็นแผ่นกระดาษเปล่า ในการรักษารูปแบบการสนทนา คุณต้องส่งประวัติการสนทนาทั้งหมดกลับไปยังโมเดลทุกครั้ง

ทางออกของ LangChain

LangChain นำเสนอChatOpenAIตัวห่อโมเดล นี่ไม่ใช่แค่การห่อเพื่อให้ดูดีเท่านั้น มันเป็นรากฐานของความยืดหยุ่น. โดยการสร้างโครงสร้างที่แยกแยะการเรียกใช้โมเดล เราสามารถเปลี่ยนโมเดล ใส่หน่วยความจำ และใช้เทมเพลตได้ในภายหลัง โดยไม่ต้องเขียนโค้ดใหม่ทั้งหมด

ฉากโจรสลัด
ลองนึกภาพอีเมลลูกค้าที่เขียนด้วยภาษาพูดสไตล์โจรสลัด ในการแปลงข้อความนี้ให้เป็นคำตอบทางธุรกิจอย่างเป็นทางการ การเรียกใช้ API โดยตรงต้องกำหนดคำสั่งไว้ในโค้ดอย่างแน่นอน แต่ด้วย LangChain เราแยก "สไตล์" (โจรสลัด กับ เป็นทางการ) ออกจาก "เนื้อหา" (อีเมล) ด้วยการสร้างโครงสร้างที่แยกแยะ
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
Why do we say LLMs are "stateless"?
They do not have access to the internet.
They cannot generate the same response twice.
They do not inherently remember previous messages in a conversation.
They are only capable of processing text, not data states.
Challenge: Initialize ChatOpenAI
Solve the problem below.
You are building a creative writing assistant and need to initialize your first LangChain model.

Your task is to create a ChatOpenAI instance named my_llm with a temperature of 0.7 to allow for more creative (non-deterministic) responses.
Task
Write the Python code to import and initialize the model.
Solution:
from langchain_openai import ChatOpenAI
my_llm = ChatOpenAI(temperature=0.7)